function flatten(list, depth = 1) {
  if (depth === 0) return list;
  return list.reduce(
    (a, b) => a.concat(Array.isArray(b) ? flatten(b, depth - 1) : b),
    []
  );
}

function flatten2(list, depth = 1) {
  let result = [];

  for (let i = 0; i < list.length; i++) {
    if (Array.isArray(list[i]) && depth > 0) {
      // 如果当前元素是数组并且还有深度可以递归，则递归调用flatten函数
      result = result.concat(flatten(list[i], depth - 1));
    } else {
      // 如果当前元素不是数组或深度为0，则直接添加到结果数组中
      result.push(list[i]);
    }
  }

  return result;
}
